﻿using System;
using System.Diagnostics;
using System.Linq;
using System.Windows.Forms;
using csvmb.contracts;
using csvmb.contracts.datacontracts;
using csvmb.contracts.infrastructure;

namespace csvmb.gui
{
    public partial class Gui : Form, IEntryPoint, IGui
    {
        private const int Ausschnitthöhe = 17;

        public Gui() {
            InitializeComponent();
        }

        public void Run(string[] args) {
            ShowDialog();
        }

        private void btnOeffnen_Click(object sender, EventArgs e) {
            Datei_oeffnen(new Tuple<string, int>(txtPfad.Text, Ausschnitthöhe));
        }

        public event Action<Tuple<string, int>> Datei_oeffnen;

        public void Zeige_Ausschnitt(Ausschnitt message) {
            Trace.TraceInformation("Gui.Zeige_Ausschnitt {0}", message);

            lvDatensaetze.Clear();

            foreach (var spalte in message.Spaltennamen) {
                lvDatensaetze.Columns.Add(spalte);
            }

            foreach (var datensatz in message.Datensaetze) {
                var item = new ListViewItem(datensatz.Spaltenwerte.ToArray());
                lvDatensaetze.Items.Add(item);
            }
        }
    }
}